package qc.common.core.enums.qms;

import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * QMS数据值告警判断方法枚举
 *
 * @author QuCheng Tech
 * @since 2025/10/20
 */
@Getter
@AllArgsConstructor
public enum QmsDataValueAlarmJudgeMethodEnum {
    UN_DEFINE(0, "未定义"),
    /**
     * 数值超限，超上限或超下限
     */
    VALUE_OUT_OF_LIMIT(1, "数值超限"),
    /**
     * 变幅过大/超限
     */
    FLUCTUATION_OUT_OF_LIMIT(2, "数值突变"),
    /**
     * 数值不一致/不相等
     */
    VALUE_NOT_EQUAL(3, "数值不一致"),
    /**
     * 数值全部相等，数据值无变化
     */
    VALUE_ALL_EQUAL(4, "数值长期不变"),
    /**
     * 数值相加＞0，但乘积=0
     * 出力+发电量+发电流量＞0，且三者乘积＝0
     */
    NON_ZERO(5, "数值不为0"),
    /**
     * 2个或多个相关联的数据变化趋势不一致/不相同
     * 相邻小时出力变化量*相邻小时发电流量变化量＜告警阈值
     */
    TRENDENCY_NOT_SAME(6, "趋势不一致"),
    /**
     * 库水位变幅过大且超过上/下限值
     */
    RESERVOIR_WATER_ERROR(9, "库水位不合理判定");

    @EnumValue
    private int index;
    private String name;

    @Override
    public String toString() {
        if (this != null)
            return this.name;

        return null;
    }
}
